package com.recharge.core.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.*;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 
 * </p>
 *
 * @author reagan
 * @since 2020-08-19
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName(value = "business_provider_order")
public class ProviderOrderEntity implements Serializable {

    private static final long serialVersionUID = 1L;
    @TableId(type = IdType.ASSIGN_UUID)
    private String id;

    /**
     * 供应商ID
     */
    private String providerId;

    /**
     * 供应单编号
     */
    private String providerOrderNo;

    /**
     * 供应商编号
     */
    private String providerNo;

    /**
     * 供应商编号
     */
    private String providerName;


    /**
     * 订单ID
     */
    private String orderId;

    /**
     * 订单号
     */
    private String orderNo;


    /**
     * 充值凭证号
     */
    private String voucherNo;


    /**
     * 1 移动2 电信3 联通

     */
    private Integer serviceProvider;


    /**
     * 卡密卡号
     */
    private String cardVoucherNo;

    /**
     * 商户号
     */
    private String merchantId;

    /**
     * 商户编号
     */
    private String merchantNo;

    /**
     * 商户编号
     */
    private String merchantName;


    /**
     * 商品ID
     */
    private String goodsId;

    /**
     * 商品编号
     */
    private Integer goodsNo;

    /**
     * 供应商流水
     */
    private String serialNumber;

    /**
     * 金额
     */
    private BigDecimal amount;

    /**
     * 供应方式
     */
    private Integer providerMethod;

    /**
     * 充值号码
     */
    private String rechargeNumber;

    /**
     * 供应时间
     */
    private Date providerDate;

    /**
     * 归属地省
     */
    private String provinceName;

    /**
     * 归属地城市
     */
    private String cityName;

    /**
     * 商品名称
     */
    private String goodsName;

    /**
     * 成本价格
     */
    private Float costDiscount;

    /**
     * 代理价格
     */
    private Float agentDiscount;

    /**
     * 订单时间
     */
    private Date orderDate;

    /**
     * 供应处理时长
     */
    private Long processTime;

    /**
     * 备注
     */
    private String remark;

    /**
     * 状态
     */
    private Integer status;

    /**
     * 人工干预操作人
     */
    private String operator;

    /**
     * 是否手动调单
     */
    private Integer isManual;

    /**
     * 是否是补充
     */
    private Integer isRemedy;

    /**
     * 是否供应结束 
     */
    private Integer isOver;

    /**
     * -1 删除 1 有效
     */
    private Integer isDelete;

    /**
     * 节点名称
     */
    @TableField(updateStrategy = FieldStrategy.NEVER)
    private Integer nodeName;

    @TableField(exist = false)
    private Integer processNumber;
    @TableField(exist = false)
    private Integer successNumber;
    @TableField(exist = false)
    private Integer failNumber;
    @TableField(exist = false)
    private Integer unconfirmedNumber;
    @TableField(exist = false)
    private Integer totalNumber;
    @TableField(exist = false)
    private Double sale;
    @TableField(exist = false)
    private Double cost;
}
